package lnx

/*
#cgo CPPFLAGS: -fPIC -I../SOPTv3.6.2_20210915
#cgo linux LDFLAGS: -fPIC -L${SRCDIR} -Wl,-rpath ${SRCDIR} -ltrade -lstdc++

#include "ThostFtdcUserApiDataType.h"
#include "ThostFtdcUserApiStruct.h"
void* tCreateApi();
void* tCreateSpi();
void* tRegisterSpi(void*, void*);void tSetOnFrontConnected(void*, void*);
int tOnFrontConnected();
void tSetOnFrontDisconnected(void*, void*);
int tOnFrontDisconnected(int nReason);
void tSetOnHeartBeatWarning(void*, void*);
int tOnHeartBeatWarning(int nTimeLapse);
void tSetOnRspAuthenticate(void*, void*);
int tOnRspAuthenticate(struct CThostFtdcRspAuthenticateField *pRspAuthenticateField, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspUserLogin(void*, void*);
int tOnRspUserLogin(struct CThostFtdcRspUserLoginField *pRspUserLogin, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspUserLogout(void*, void*);
int tOnRspUserLogout(struct CThostFtdcUserLogoutField *pUserLogout, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspUserPasswordUpdate(void*, void*);
int tOnRspUserPasswordUpdate(struct CThostFtdcUserPasswordUpdateField *pUserPasswordUpdate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspTradingAccountPasswordUpdate(void*, void*);
int tOnRspTradingAccountPasswordUpdate(struct CThostFtdcTradingAccountPasswordUpdateField *pTradingAccountPasswordUpdate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspOrderInsert(void*, void*);
int tOnRspOrderInsert(struct CThostFtdcInputOrderField *pInputOrder, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspParkedOrderInsert(void*, void*);
int tOnRspParkedOrderInsert(struct CThostFtdcParkedOrderField *pParkedOrder, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspParkedOrderAction(void*, void*);
int tOnRspParkedOrderAction(struct CThostFtdcParkedOrderActionField *pParkedOrderAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspOrderAction(void*, void*);
int tOnRspOrderAction(struct CThostFtdcInputOrderActionField *pInputOrderAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQueryMaxOrderVolume(void*, void*);
int tOnRspQueryMaxOrderVolume(struct CThostFtdcQueryMaxOrderVolumeField *pQueryMaxOrderVolume, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspSettlementInfoConfirm(void*, void*);
int tOnRspSettlementInfoConfirm(struct CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspRemoveParkedOrder(void*, void*);
int tOnRspRemoveParkedOrder(struct CThostFtdcRemoveParkedOrderField *pRemoveParkedOrder, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspRemoveParkedOrderAction(void*, void*);
int tOnRspRemoveParkedOrderAction(struct CThostFtdcRemoveParkedOrderActionField *pRemoveParkedOrderAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspExecOrderInsert(void*, void*);
int tOnRspExecOrderInsert(struct CThostFtdcInputExecOrderField *pInputExecOrder, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspExecOrderAction(void*, void*);
int tOnRspExecOrderAction(struct CThostFtdcInputExecOrderActionField *pInputExecOrderAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspForQuoteInsert(void*, void*);
int tOnRspForQuoteInsert(struct CThostFtdcInputForQuoteField *pInputForQuote, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQuoteInsert(void*, void*);
int tOnRspQuoteInsert(struct CThostFtdcInputQuoteField *pInputQuote, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQuoteAction(void*, void*);
int tOnRspQuoteAction(struct CThostFtdcInputQuoteActionField *pInputQuoteAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspLockInsert(void*, void*);
int tOnRspLockInsert(struct CThostFtdcInputLockField *pInputLock, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspBatchOrderAction(void*, void*);
int tOnRspBatchOrderAction(struct CThostFtdcInputBatchOrderActionField *pInputBatchOrderAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspCombActionInsert(void*, void*);
int tOnRspCombActionInsert(struct CThostFtdcInputCombActionField *pInputCombAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryOrder(void*, void*);
int tOnRspQryOrder(struct CThostFtdcOrderField *pOrder, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryTrade(void*, void*);
int tOnRspQryTrade(struct CThostFtdcTradeField *pTrade, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInvestorPosition(void*, void*);
int tOnRspQryInvestorPosition(struct CThostFtdcInvestorPositionField *pInvestorPosition, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryTradingAccount(void*, void*);
int tOnRspQryTradingAccount(struct CThostFtdcTradingAccountField *pTradingAccount, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInvestor(void*, void*);
int tOnRspQryInvestor(struct CThostFtdcInvestorField *pInvestor, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryTradingCode(void*, void*);
int tOnRspQryTradingCode(struct CThostFtdcTradingCodeField *pTradingCode, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInstrumentMarginRate(void*, void*);
int tOnRspQryInstrumentMarginRate(struct CThostFtdcInstrumentMarginRateField *pInstrumentMarginRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInstrumentCommissionRate(void*, void*);
int tOnRspQryInstrumentCommissionRate(struct CThostFtdcInstrumentCommissionRateField *pInstrumentCommissionRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryExchange(void*, void*);
int tOnRspQryExchange(struct CThostFtdcExchangeField *pExchange, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryProduct(void*, void*);
int tOnRspQryProduct(struct CThostFtdcProductField *pProduct, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInstrument(void*, void*);
int tOnRspQryInstrument(struct CThostFtdcInstrumentField *pInstrument, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryDepthMarketData(void*, void*);
int tOnRspQryDepthMarketData(struct CThostFtdcDepthMarketDataField *pDepthMarketData, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQrySettlementInfo(void*, void*);
int tOnRspQrySettlementInfo(struct CThostFtdcSettlementInfoField *pSettlementInfo, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryTransferBank(void*, void*);
int tOnRspQryTransferBank(struct CThostFtdcTransferBankField *pTransferBank, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInvestorPositionDetail(void*, void*);
int tOnRspQryInvestorPositionDetail(struct CThostFtdcInvestorPositionDetailField *pInvestorPositionDetail, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryNotice(void*, void*);
int tOnRspQryNotice(struct CThostFtdcNoticeField *pNotice, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQrySettlementInfoConfirm(void*, void*);
int tOnRspQrySettlementInfoConfirm(struct CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInvestorPositionCombineDetail(void*, void*);
int tOnRspQryInvestorPositionCombineDetail(struct CThostFtdcInvestorPositionCombineDetailField *pInvestorPositionCombineDetail, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryCFMMCTradingAccountKey(void*, void*);
int tOnRspQryCFMMCTradingAccountKey(struct CThostFtdcCFMMCTradingAccountKeyField *pCFMMCTradingAccountKey, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryEWarrantOffset(void*, void*);
int tOnRspQryEWarrantOffset(struct CThostFtdcEWarrantOffsetField *pEWarrantOffset, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInvestorProductGroupMargin(void*, void*);
int tOnRspQryInvestorProductGroupMargin(struct CThostFtdcInvestorProductGroupMarginField *pInvestorProductGroupMargin, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryExchangeMarginRate(void*, void*);
int tOnRspQryExchangeMarginRate(struct CThostFtdcExchangeMarginRateField *pExchangeMarginRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryExchangeMarginRateAdjust(void*, void*);
int tOnRspQryExchangeMarginRateAdjust(struct CThostFtdcExchangeMarginRateAdjustField *pExchangeMarginRateAdjust, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryExchangeRate(void*, void*);
int tOnRspQryExchangeRate(struct CThostFtdcExchangeRateField *pExchangeRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQrySecAgentACIDMap(void*, void*);
int tOnRspQrySecAgentACIDMap(struct CThostFtdcSecAgentACIDMapField *pSecAgentACIDMap, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryProductExchRate(void*, void*);
int tOnRspQryProductExchRate(struct CThostFtdcProductExchRateField *pProductExchRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryProductGroup(void*, void*);
int tOnRspQryProductGroup(struct CThostFtdcProductGroupField *pProductGroup, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryMMInstrumentCommissionRate(void*, void*);
int tOnRspQryMMInstrumentCommissionRate(struct CThostFtdcMMInstrumentCommissionRateField *pMMInstrumentCommissionRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryMMOptionInstrCommRate(void*, void*);
int tOnRspQryMMOptionInstrCommRate(struct CThostFtdcMMOptionInstrCommRateField *pMMOptionInstrCommRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInstrumentOrderCommRate(void*, void*);
int tOnRspQryInstrumentOrderCommRate(struct CThostFtdcInstrumentOrderCommRateField *pInstrumentOrderCommRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryOptionInstrTradeCost(void*, void*);
int tOnRspQryOptionInstrTradeCost(struct CThostFtdcOptionInstrTradeCostField *pOptionInstrTradeCost, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryOptionInstrCommRate(void*, void*);
int tOnRspQryOptionInstrCommRate(struct CThostFtdcOptionInstrCommRateField *pOptionInstrCommRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryExecOrder(void*, void*);
int tOnRspQryExecOrder(struct CThostFtdcExecOrderField *pExecOrder, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryForQuote(void*, void*);
int tOnRspQryForQuote(struct CThostFtdcForQuoteField *pForQuote, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryQuote(void*, void*);
int tOnRspQryQuote(struct CThostFtdcQuoteField *pQuote, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryLock(void*, void*);
int tOnRspQryLock(struct CThostFtdcLockField *pLock, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryLockPosition(void*, void*);
int tOnRspQryLockPosition(struct CThostFtdcLockPositionField *pLockPosition, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryETFOptionInstrCommRate(void*, void*);
int tOnRspQryETFOptionInstrCommRate(struct CThostFtdcETFOptionInstrCommRateField *pETFOptionInstrCommRate, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryLimitPosi(void*, void*);
int tOnRspQryLimitPosi(struct CThostFtdcLimitPosiField *pLimitPosi, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryInvestorLevel(void*, void*);
int tOnRspQryInvestorLevel(struct CThostFtdcInvestorLevelField *pInvestorLevel, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryExecFreeze(void*, void*);
int tOnRspQryExecFreeze(struct CThostFtdcExecFreezeField *pExecFreeze, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryLimitAmount(void*, void*);
int tOnRspQryLimitAmount(struct CThostFtdcLimitAmountField *pLimitAmount, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryCombInstrumentGuard(void*, void*);
int tOnRspQryCombInstrumentGuard(struct CThostFtdcCombInstrumentGuardField *pCombInstrumentGuard, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryCombAction(void*, void*);
int tOnRspQryCombAction(struct CThostFtdcCombActionField *pCombAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryTransferSerial(void*, void*);
int tOnRspQryTransferSerial(struct CThostFtdcTransferSerialField *pTransferSerial, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryAccountregister(void*, void*);
int tOnRspQryAccountregister(struct CThostFtdcAccountregisterField *pAccountregister, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspError(void*, void*);
int tOnRspError(struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRtnOrder(void*, void*);
int tOnRtnOrder(struct CThostFtdcOrderField *pOrder);
void tSetOnRtnTrade(void*, void*);
int tOnRtnTrade(struct CThostFtdcTradeField *pTrade);
void tSetOnErrRtnOrderInsert(void*, void*);
int tOnErrRtnOrderInsert(struct CThostFtdcInputOrderField *pInputOrder, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnOrderAction(void*, void*);
int tOnErrRtnOrderAction(struct CThostFtdcOrderActionField *pOrderAction, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnRtnInstrumentStatus(void*, void*);
int tOnRtnInstrumentStatus(struct CThostFtdcInstrumentStatusField *pInstrumentStatus);
void tSetOnRtnBulletin(void*, void*);
int tOnRtnBulletin(struct CThostFtdcBulletinField *pBulletin);
void tSetOnRtnTradingNotice(void*, void*);
int tOnRtnTradingNotice(struct CThostFtdcTradingNoticeInfoField *pTradingNoticeInfo);
void tSetOnRtnErrorConditionalOrder(void*, void*);
int tOnRtnErrorConditionalOrder(struct CThostFtdcErrorConditionalOrderField *pErrorConditionalOrder);
void tSetOnRtnExecOrder(void*, void*);
int tOnRtnExecOrder(struct CThostFtdcExecOrderField *pExecOrder);
void tSetOnErrRtnExecOrderInsert(void*, void*);
int tOnErrRtnExecOrderInsert(struct CThostFtdcInputExecOrderField *pInputExecOrder, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnExecOrderAction(void*, void*);
int tOnErrRtnExecOrderAction(struct CThostFtdcExecOrderActionField *pExecOrderAction, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnForQuoteInsert(void*, void*);
int tOnErrRtnForQuoteInsert(struct CThostFtdcInputForQuoteField *pInputForQuote, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnRtnQuote(void*, void*);
int tOnRtnQuote(struct CThostFtdcQuoteField *pQuote);
void tSetOnErrRtnQuoteInsert(void*, void*);
int tOnErrRtnQuoteInsert(struct CThostFtdcInputQuoteField *pInputQuote, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnQuoteAction(void*, void*);
int tOnErrRtnQuoteAction(struct CThostFtdcQuoteActionField *pQuoteAction, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnRtnForQuoteRsp(void*, void*);
int tOnRtnForQuoteRsp(struct CThostFtdcForQuoteRspField *pForQuoteRsp);
void tSetOnRtnCFMMCTradingAccountToken(void*, void*);
int tOnRtnCFMMCTradingAccountToken(struct CThostFtdcCFMMCTradingAccountTokenField *pCFMMCTradingAccountToken);
void tSetOnRtnLock(void*, void*);
int tOnRtnLock(struct CThostFtdcLockField *pLock);
void tSetOnErrRtnLockInsert(void*, void*);
int tOnErrRtnLockInsert(struct CThostFtdcInputLockField *pInputLock, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnBatchOrderAction(void*, void*);
int tOnErrRtnBatchOrderAction(struct CThostFtdcBatchOrderActionField *pBatchOrderAction, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnRtnCombAction(void*, void*);
int tOnRtnCombAction(struct CThostFtdcCombActionField *pCombAction);
void tSetOnErrRtnCombActionInsert(void*, void*);
int tOnErrRtnCombActionInsert(struct CThostFtdcInputCombActionField *pInputCombAction, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnRspQryContractBank(void*, void*);
int tOnRspQryContractBank(struct CThostFtdcContractBankField *pContractBank, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryParkedOrder(void*, void*);
int tOnRspQryParkedOrder(struct CThostFtdcParkedOrderField *pParkedOrder, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryParkedOrderAction(void*, void*);
int tOnRspQryParkedOrderAction(struct CThostFtdcParkedOrderActionField *pParkedOrderAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryTradingNotice(void*, void*);
int tOnRspQryTradingNotice(struct CThostFtdcTradingNoticeField *pTradingNotice, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryBrokerTradingParams(void*, void*);
int tOnRspQryBrokerTradingParams(struct CThostFtdcBrokerTradingParamsField *pBrokerTradingParams, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryBrokerTradingAlgos(void*, void*);
int tOnRspQryBrokerTradingAlgos(struct CThostFtdcBrokerTradingAlgosField *pBrokerTradingAlgos, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQueryCFMMCTradingAccountToken(void*, void*);
int tOnRspQueryCFMMCTradingAccountToken(struct CThostFtdcQueryCFMMCTradingAccountTokenField *pQueryCFMMCTradingAccountToken, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRtnFromBankToFutureByBank(void*, void*);
int tOnRtnFromBankToFutureByBank(struct CThostFtdcRspTransferField *pRspTransfer);
void tSetOnRtnFromFutureToBankByBank(void*, void*);
int tOnRtnFromFutureToBankByBank(struct CThostFtdcRspTransferField *pRspTransfer);
void tSetOnRtnRepealFromBankToFutureByBank(void*, void*);
int tOnRtnRepealFromBankToFutureByBank(struct CThostFtdcRspRepealField *pRspRepeal);
void tSetOnRtnRepealFromFutureToBankByBank(void*, void*);
int tOnRtnRepealFromFutureToBankByBank(struct CThostFtdcRspRepealField *pRspRepeal);
void tSetOnRtnFromBankToFutureByFuture(void*, void*);
int tOnRtnFromBankToFutureByFuture(struct CThostFtdcRspTransferField *pRspTransfer);
void tSetOnRtnFromFutureToBankByFuture(void*, void*);
int tOnRtnFromFutureToBankByFuture(struct CThostFtdcRspTransferField *pRspTransfer);
void tSetOnRtnRepealFromBankToFutureByFutureManual(void*, void*);
int tOnRtnRepealFromBankToFutureByFutureManual(struct CThostFtdcRspRepealField *pRspRepeal);
void tSetOnRtnRepealFromFutureToBankByFutureManual(void*, void*);
int tOnRtnRepealFromFutureToBankByFutureManual(struct CThostFtdcRspRepealField *pRspRepeal);
void tSetOnRtnQueryBankBalanceByFuture(void*, void*);
int tOnRtnQueryBankBalanceByFuture(struct CThostFtdcNotifyQueryAccountField *pNotifyQueryAccount);
void tSetOnErrRtnBankToFutureByFuture(void*, void*);
int tOnErrRtnBankToFutureByFuture(struct CThostFtdcReqTransferField *pReqTransfer, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnFutureToBankByFuture(void*, void*);
int tOnErrRtnFutureToBankByFuture(struct CThostFtdcReqTransferField *pReqTransfer, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnRepealBankToFutureByFutureManual(void*, void*);
int tOnErrRtnRepealBankToFutureByFutureManual(struct CThostFtdcReqRepealField *pReqRepeal, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnRepealFutureToBankByFutureManual(void*, void*);
int tOnErrRtnRepealFutureToBankByFutureManual(struct CThostFtdcReqRepealField *pReqRepeal, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnQueryBankBalanceByFuture(void*, void*);
int tOnErrRtnQueryBankBalanceByFuture(struct CThostFtdcReqQueryAccountField *pReqQueryAccount, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnRtnRepealFromBankToFutureByFuture(void*, void*);
int tOnRtnRepealFromBankToFutureByFuture(struct CThostFtdcRspRepealField *pRspRepeal);
void tSetOnRtnRepealFromFutureToBankByFuture(void*, void*);
int tOnRtnRepealFromFutureToBankByFuture(struct CThostFtdcRspRepealField *pRspRepeal);
void tSetOnRspFromBankToFutureByFuture(void*, void*);
int tOnRspFromBankToFutureByFuture(struct CThostFtdcReqTransferField *pReqTransfer, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspFromFutureToBankByFuture(void*, void*);
int tOnRspFromFutureToBankByFuture(struct CThostFtdcReqTransferField *pReqTransfer, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQueryBankAccountMoneyByFuture(void*, void*);
int tOnRspQueryBankAccountMoneyByFuture(struct CThostFtdcReqQueryAccountField *pReqQueryAccount, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRtnOpenAccountByBank(void*, void*);
int tOnRtnOpenAccountByBank(struct CThostFtdcOpenAccountField *pOpenAccount);
void tSetOnRtnCancelAccountByBank(void*, void*);
int tOnRtnCancelAccountByBank(struct CThostFtdcCancelAccountField *pCancelAccount);
void tSetOnRtnChangeAccountByBank(void*, void*);
int tOnRtnChangeAccountByBank(struct CThostFtdcChangeAccountField *pChangeAccount);
void tSetOnRtnResOpenAccConfirmTpdByBank(void*, void*);
int tOnRtnResOpenAccConfirmTpdByBank(struct CThostFtdcResOpenAccConfirmTpdField *pResOpenAccConfirmTpd);
void tSetOnRspReserveOpenAccountTpdByFuture(void*, void*);
int tOnRspReserveOpenAccountTpdByFuture(struct CThostFtdcReqReserveOpenAccountTpdField *pReqReserveOpenAccountTpd, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspSecuritiesDepositInterestByFuture(void*, void*);
int tOnRspSecuritiesDepositInterestByFuture(struct CThostFtdcReqSecuritiesDepositInterestField *pReqSecuritiesDepositInterest, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspDayEndFileReadyByFuture(void*, void*);
int tOnRspDayEndFileReadyByFuture(struct CThostFtdcReqDayEndFileReadyField *pReqDayEndFileReady, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspExecCombineOrderInsert(void*, void*);
int tOnRspExecCombineOrderInsert(struct CThostFtdcInputExecCombineOrderField *pInputExecCombineOrder, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspExecCombineOrderAction(void*, void*);
int tOnRspExecCombineOrderAction(struct CThostFtdcInputExecCombineOrderActionField *pInputExecCombineOrderAction, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryExecCombineOrder(void*, void*);
int tOnRspQryExecCombineOrder(struct CThostFtdcExecCombineOrderField *pExecCombineOrder, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnErrRtnExecCombineOrderAction(void*, void*);
int tOnErrRtnExecCombineOrderAction(struct CThostFtdcExecCombineOrderActionField *pExecCombineOrderAction, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnErrRtnExecCombineOrderInsert(void*, void*);
int tOnErrRtnExecCombineOrderInsert(struct CThostFtdcInputExecCombineOrderField *pInputExecCombineOrder, struct CThostFtdcRspInfoField *pRspInfo);
void tSetOnRtnExecCombineOrder(void*, void*);
int tOnRtnExecCombineOrder(struct CThostFtdcExecCombineOrderField *pExecCombineOrder);
void tSetOnRspInternalTransfer(void*, void*);
int tOnRspInternalTransfer(struct CThostFtdcInputInternalTransferField *pInputInternalTransfer, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRtnInternalTransfer(void*, void*);
int tOnRtnInternalTransfer(struct CThostFtdcRtnInternalTransferField *pRtnInternalTransfer);
void tSetOnRspQryInternalTransfer(void*, void*);
int tOnRspQryInternalTransfer(struct CThostFtdcInternalTransferField *pInternalTransfer, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tSetOnRspQryFutureTradingAccount(void*, void*);
int tOnRspQryFutureTradingAccount(struct CThostFtdcNtfQryFutureTradingAccountField *pNtfQryFutureTradingAccount, struct CThostFtdcRspInfoField *pRspInfo, int nRequestID, _Bool bIsLast);
void tRelease(void*);
void tInit(void*);
void tJoin(void*);
void tRegisterFront(void*, char *pszFrontAddress);
void tRegisterNameServer(void*, char *pszNsAddress);
void tRegisterFensUserInfo(void*, struct CThostFtdcFensUserInfoField * pFensUserInfo);
void tSubscribePrivateTopic(void*, int nResumeType);
void tSubscribePublicTopic(void*, int nResumeType);
void tReqAuthenticate(void*, struct CThostFtdcReqAuthenticateField *pReqAuthenticateField, int nRequestID);
void tRegisterUserSystemInfo(void*, struct CThostFtdcUserSystemInfoField *pUserSystemInfo);
void tSubmitUserSystemInfo(void*, struct CThostFtdcUserSystemInfoField *pUserSystemInfo);
void tReqUserLogin(void*, struct CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID);
void tReqUserLogout(void*, struct CThostFtdcUserLogoutField *pUserLogout, int nRequestID);
void tReqUserPasswordUpdate(void*, struct CThostFtdcUserPasswordUpdateField *pUserPasswordUpdate, int nRequestID);
void tReqTradingAccountPasswordUpdate(void*, struct CThostFtdcTradingAccountPasswordUpdateField *pTradingAccountPasswordUpdate, int nRequestID);
void tReqOrderInsert(void*, struct CThostFtdcInputOrderField *pInputOrder, int nRequestID);
void tReqParkedOrderInsert(void*, struct CThostFtdcParkedOrderField *pParkedOrder, int nRequestID);
void tReqParkedOrderAction(void*, struct CThostFtdcParkedOrderActionField *pParkedOrderAction, int nRequestID);
void tReqOrderAction(void*, struct CThostFtdcInputOrderActionField *pInputOrderAction, int nRequestID);
void tReqQueryMaxOrderVolume(void*, struct CThostFtdcQueryMaxOrderVolumeField *pQueryMaxOrderVolume, int nRequestID);
void tReqSettlementInfoConfirm(void*, struct CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, int nRequestID);
void tReqRemoveParkedOrder(void*, struct CThostFtdcRemoveParkedOrderField *pRemoveParkedOrder, int nRequestID);
void tReqRemoveParkedOrderAction(void*, struct CThostFtdcRemoveParkedOrderActionField *pRemoveParkedOrderAction, int nRequestID);
void tReqExecOrderInsert(void*, struct CThostFtdcInputExecOrderField *pInputExecOrder, int nRequestID);
void tReqExecOrderAction(void*, struct CThostFtdcInputExecOrderActionField *pInputExecOrderAction, int nRequestID);
void tReqForQuoteInsert(void*, struct CThostFtdcInputForQuoteField *pInputForQuote, int nRequestID);
void tReqQuoteInsert(void*, struct CThostFtdcInputQuoteField *pInputQuote, int nRequestID);
void tReqQuoteAction(void*, struct CThostFtdcInputQuoteActionField *pInputQuoteAction, int nRequestID);
void tReqLockInsert(void*, struct CThostFtdcInputLockField *pInputLock, int nRequestID);
void tReqBatchOrderAction(void*, struct CThostFtdcInputBatchOrderActionField *pInputBatchOrderAction, int nRequestID);
void tReqCombActionInsert(void*, struct CThostFtdcInputCombActionField *pInputCombAction, int nRequestID);
void tReqQryOrder(void*, struct CThostFtdcQryOrderField *pQryOrder, int nRequestID);
void tReqQryTrade(void*, struct CThostFtdcQryTradeField *pQryTrade, int nRequestID);
void tReqQryInvestorPosition(void*, struct CThostFtdcQryInvestorPositionField *pQryInvestorPosition, int nRequestID);
void tReqQryTradingAccount(void*, struct CThostFtdcQryTradingAccountField *pQryTradingAccount, int nRequestID);
void tReqQryInvestor(void*, struct CThostFtdcQryInvestorField *pQryInvestor, int nRequestID);
void tReqQryTradingCode(void*, struct CThostFtdcQryTradingCodeField *pQryTradingCode, int nRequestID);
void tReqQryInstrumentMarginRate(void*, struct CThostFtdcQryInstrumentMarginRateField *pQryInstrumentMarginRate, int nRequestID);
void tReqQryInstrumentCommissionRate(void*, struct CThostFtdcQryInstrumentCommissionRateField *pQryInstrumentCommissionRate, int nRequestID);
void tReqQryExchange(void*, struct CThostFtdcQryExchangeField *pQryExchange, int nRequestID);
void tReqQryProduct(void*, struct CThostFtdcQryProductField *pQryProduct, int nRequestID);
void tReqQryInstrument(void*, struct CThostFtdcQryInstrumentField *pQryInstrument, int nRequestID);
void tReqQryDepthMarketData(void*, struct CThostFtdcQryDepthMarketDataField *pQryDepthMarketData, int nRequestID);
void tReqQrySettlementInfo(void*, struct CThostFtdcQrySettlementInfoField *pQrySettlementInfo, int nRequestID);
void tReqQryTransferBank(void*, struct CThostFtdcQryTransferBankField *pQryTransferBank, int nRequestID);
void tReqQryInvestorPositionDetail(void*, struct CThostFtdcQryInvestorPositionDetailField *pQryInvestorPositionDetail, int nRequestID);
void tReqQryNotice(void*, struct CThostFtdcQryNoticeField *pQryNotice, int nRequestID);
void tReqQrySettlementInfoConfirm(void*, struct CThostFtdcQrySettlementInfoConfirmField *pQrySettlementInfoConfirm, int nRequestID);
void tReqQryInvestorPositionCombineDetail(void*, struct CThostFtdcQryInvestorPositionCombineDetailField *pQryInvestorPositionCombineDetail, int nRequestID);
void tReqQryCFMMCTradingAccountKey(void*, struct CThostFtdcQryCFMMCTradingAccountKeyField *pQryCFMMCTradingAccountKey, int nRequestID);
void tReqQryEWarrantOffset(void*, struct CThostFtdcQryEWarrantOffsetField *pQryEWarrantOffset, int nRequestID);
void tReqQryInvestorProductGroupMargin(void*, struct CThostFtdcQryInvestorProductGroupMarginField *pQryInvestorProductGroupMargin, int nRequestID);
void tReqQryExchangeMarginRate(void*, struct CThostFtdcQryExchangeMarginRateField *pQryExchangeMarginRate, int nRequestID);
void tReqQryExchangeMarginRateAdjust(void*, struct CThostFtdcQryExchangeMarginRateAdjustField *pQryExchangeMarginRateAdjust, int nRequestID);
void tReqQryExchangeRate(void*, struct CThostFtdcQryExchangeRateField *pQryExchangeRate, int nRequestID);
void tReqQrySecAgentACIDMap(void*, struct CThostFtdcQrySecAgentACIDMapField *pQrySecAgentACIDMap, int nRequestID);
void tReqQryProductExchRate(void*, struct CThostFtdcQryProductExchRateField *pQryProductExchRate, int nRequestID);
void tReqQryProductGroup(void*, struct CThostFtdcQryProductGroupField *pQryProductGroup, int nRequestID);
void tReqQryMMInstrumentCommissionRate(void*, struct CThostFtdcQryMMInstrumentCommissionRateField *pQryMMInstrumentCommissionRate, int nRequestID);
void tReqQryMMOptionInstrCommRate(void*, struct CThostFtdcQryMMOptionInstrCommRateField *pQryMMOptionInstrCommRate, int nRequestID);
void tReqQryInstrumentOrderCommRate(void*, struct CThostFtdcQryInstrumentOrderCommRateField *pQryInstrumentOrderCommRate, int nRequestID);
void tReqQryOptionInstrTradeCost(void*, struct CThostFtdcQryOptionInstrTradeCostField *pQryOptionInstrTradeCost, int nRequestID);
void tReqQryOptionInstrCommRate(void*, struct CThostFtdcQryOptionInstrCommRateField *pQryOptionInstrCommRate, int nRequestID);
void tReqQryExecOrder(void*, struct CThostFtdcQryExecOrderField *pQryExecOrder, int nRequestID);
void tReqQryForQuote(void*, struct CThostFtdcQryForQuoteField *pQryForQuote, int nRequestID);
void tReqQryQuote(void*, struct CThostFtdcQryQuoteField *pQryQuote, int nRequestID);
void tReqQryLock(void*, struct CThostFtdcQryLockField *pQryLock, int nRequestID);
void tReqQryLockPosition(void*, struct CThostFtdcQryLockPositionField *pQryLockPosition, int nRequestID);
void tReqQryETFOptionInstrCommRate(void*, struct CThostFtdcQryETFOptionInstrCommRateField *pQryETFOptionInstrCommRate, int nRequestID);
void tReqQryLimitPosi(void*, struct CThostFtdcQryLimitPosiField *pQryLimitPosi, int nRequestID);
void tReqQryInvestorLevel(void*, struct CThostFtdcQryInvestorLevelField *pQryInvestorLevel, int nRequestID);
void tReqQryExecFreeze(void*, struct CThostFtdcQryExecFreezeField *pQryExecFreeze, int nRequestID);
void tReqQryLimitAmount(void*, struct CThostFtdcQryLimitAmountField *pQryLimitAmount, int nRequestID);
void tReqQryCombInstrumentGuard(void*, struct CThostFtdcQryCombInstrumentGuardField *pQryCombInstrumentGuard, int nRequestID);
void tReqQryCombAction(void*, struct CThostFtdcQryCombActionField *pQryCombAction, int nRequestID);
void tReqQryTransferSerial(void*, struct CThostFtdcQryTransferSerialField *pQryTransferSerial, int nRequestID);
void tReqQryAccountregister(void*, struct CThostFtdcQryAccountregisterField *pQryAccountregister, int nRequestID);
void tReqQryContractBank(void*, struct CThostFtdcQryContractBankField *pQryContractBank, int nRequestID);
void tReqQryParkedOrder(void*, struct CThostFtdcQryParkedOrderField *pQryParkedOrder, int nRequestID);
void tReqQryParkedOrderAction(void*, struct CThostFtdcQryParkedOrderActionField *pQryParkedOrderAction, int nRequestID);
void tReqQryTradingNotice(void*, struct CThostFtdcQryTradingNoticeField *pQryTradingNotice, int nRequestID);
void tReqQryBrokerTradingParams(void*, struct CThostFtdcQryBrokerTradingParamsField *pQryBrokerTradingParams, int nRequestID);
void tReqQryBrokerTradingAlgos(void*, struct CThostFtdcQryBrokerTradingAlgosField *pQryBrokerTradingAlgos, int nRequestID);
void tReqQueryCFMMCTradingAccountToken(void*, struct CThostFtdcQueryCFMMCTradingAccountTokenField *pQueryCFMMCTradingAccountToken, int nRequestID);
void tReqFromBankToFutureByFuture(void*, struct CThostFtdcReqTransferField *pReqTransfer, int nRequestID);
void tReqFromFutureToBankByFuture(void*, struct CThostFtdcReqTransferField *pReqTransfer, int nRequestID);
void tReqQueryBankAccountMoneyByFuture(void*, struct CThostFtdcReqQueryAccountField *pReqQueryAccount, int nRequestID);
void tReqReserveOpenAccountTpdByFuture(void*, struct CThostFtdcReqReserveOpenAccountTpdField *pReqReserveOpenAccountTpd, int nRequestID);
void tReqSecuritiesDepositInterestByFuture(void*, struct CThostFtdcReqSecuritiesDepositInterestField *pReqSecuritiesDepositInterest, int nRequestID);
void tReqDayEndFileReadyByFuture(void*, struct CThostFtdcReqDayEndFileReadyField *pReqDayEndFileReady, int nRequestID);
void tReqExecCombineOrderInsert(void*, struct CThostFtdcInputExecCombineOrderField *pInputExecCombineOrder, int nRequestID);
void tReqExecCombineOrderAction(void*, struct CThostFtdcInputExecCombineOrderActionField *pInputExecCombineOrderAction, int nRequestID);
void tReqQryExecCombineOrder(void*, struct CThostFtdcQryExecCombineOrderField *pQryExecCombineOrder, int nRequestID);
void tReqInternalTransfer(void*, struct CThostFtdcInputInternalTransferField *pInputInternalTransfer, int nRequestID);
void tReqQryInternalTransfer(void*, struct CThostFtdcQryInternalTransferField *pQryInternalTransfer, int nRequestID);
void tReqQryFutureTradingAccount(void*, struct CThostFtdcQryFutureTradingAccountField *pQryFutureTradingAccount, int nRequestID);

#include <stdlib.h>
#include <stdint.h>
*/
import "C"
import (
	"fmt"
	"unsafe"

	"gitee.com/haifengat/gosopt"
	"gitee.com/haifengat/gosopt/define"
)

// Trade 交易接口
type Trade struct {
	gosopt.HFTrade // 组合

	api unsafe.Pointer
}

var t *Trade

// NewTrade new trade api instanse
func NewTrade() *Trade {
	t = new(Trade)

	t.api = C.tCreateApi()
	spi := C.tCreateSpi()
	C.tRegisterSpi(t.api, spi)

	// req
	t.HFTrade.ReqConnect = func(addr string) {
		front := C.CString(addr)
		C.tRegisterFront(t.api, front)
		defer C.free(unsafe.Pointer(front))
		C.tInit(t.api)
		// C.qJoin(t.api)
	}
	t.HFTrade.Release = func() {
		C.tRelease(t.api)
	}
	t.HFTrade.ReqUserLogin = func(f *define.CThostFtdcReqUserLoginField) {
		C.tReqUserLogin(t.api, (*C.struct_CThostFtdcReqUserLoginField)(unsafe.Pointer(f)), C.int(2))
	}
	t.HFTrade.ReqAuthenticate = func(f *define.CThostFtdcReqAuthenticateField, i int) {
		C.tReqAuthenticate(t.api, (*C.struct_CThostFtdcReqAuthenticateField)(unsafe.Pointer(f)), C.int(1))
	}
	t.HFTrade.Init() // 初始化

	C.tSetOnFrontConnected(spi, C.tOnFrontConnected)
	C.tSetOnFrontDisconnected(spi, C.tOnFrontDisconnected)
	C.tSetOnRspUserLogin(spi, C.tOnRspUserLogin)
	C.tSetOnRspAuthenticate(spi, C.tOnRspAuthenticate)
	return t
}

// reg
//export tOnFrontConnected
func tOnFrontConnected() C.int {
	t.HFTrade.FrontConnected()
	return 0
}

//export tOnFrontDisconnected
func tOnFrontDisconnected(i C.int) C.int {
	t.HFTrade.FrontDisConnected(int(i))
	return 0
}

//export tOnHeartBeatWarning
func tOnHeartBeatWarning(i C.int) C.int {

	fmt.Print()
	return 0
}

//export tOnRspAuthenticate
func tOnRspAuthenticate(pRspAuthenticateField *C.struct_CThostFtdcRspAuthenticateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	// pRspAuthenticateFieldField := (*define.CThostFtdcRspAuthenticateField)(unsafe.Pointer(pRspAuthenticateField))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	t.HFTrade.RspAuthenticate(pRspInfoField)
	return 0
}

//export tOnRspUserLogin
func tOnRspUserLogin(pRspUserLogin *C.struct_CThostFtdcRspUserLoginField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pRspUserLoginField := (*define.CThostFtdcRspUserLoginField)(unsafe.Pointer(pRspUserLogin))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	t.HFTrade.RspUserLogin(pRspUserLoginField, pRspInfoField)
	return 0
}

//export tOnRspUserLogout
func tOnRspUserLogout(pUserLogout *C.struct_CThostFtdcUserLogoutField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pUserLogoutField := (*define.CThostFtdcUserLogoutField)(unsafe.Pointer(pUserLogout))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pUserLogoutField, pRspInfoField)
	return 0
}

//export tOnRspUserPasswordUpdate
func tOnRspUserPasswordUpdate(pUserPasswordUpdate *C.struct_CThostFtdcUserPasswordUpdateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pUserPasswordUpdateField := (*define.CThostFtdcUserPasswordUpdateField)(unsafe.Pointer(pUserPasswordUpdate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pUserPasswordUpdateField, pRspInfoField)
	return 0
}

//export tOnRspTradingAccountPasswordUpdate
func tOnRspTradingAccountPasswordUpdate(pTradingAccountPasswordUpdate *C.struct_CThostFtdcTradingAccountPasswordUpdateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pTradingAccountPasswordUpdateField := (*define.CThostFtdcTradingAccountPasswordUpdateField)(unsafe.Pointer(pTradingAccountPasswordUpdate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pTradingAccountPasswordUpdateField, pRspInfoField)
	return 0
}

//export tOnRspOrderInsert
func tOnRspOrderInsert(pInputOrder *C.struct_CThostFtdcInputOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputOrderField := (*define.CThostFtdcInputOrderField)(unsafe.Pointer(pInputOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputOrderField, pRspInfoField)
	return 0
}

//export tOnRspParkedOrderInsert
func tOnRspParkedOrderInsert(pParkedOrder *C.struct_CThostFtdcParkedOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pParkedOrderField := (*define.CThostFtdcParkedOrderField)(unsafe.Pointer(pParkedOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pParkedOrderField, pRspInfoField)
	return 0
}

//export tOnRspParkedOrderAction
func tOnRspParkedOrderAction(pParkedOrderAction *C.struct_CThostFtdcParkedOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pParkedOrderActionField := (*define.CThostFtdcParkedOrderActionField)(unsafe.Pointer(pParkedOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pParkedOrderActionField, pRspInfoField)
	return 0
}

//export tOnRspOrderAction
func tOnRspOrderAction(pInputOrderAction *C.struct_CThostFtdcInputOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputOrderActionField := (*define.CThostFtdcInputOrderActionField)(unsafe.Pointer(pInputOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputOrderActionField, pRspInfoField)
	return 0
}

//export tOnRspQueryMaxOrderVolume
func tOnRspQueryMaxOrderVolume(pQueryMaxOrderVolume *C.struct_CThostFtdcQueryMaxOrderVolumeField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pQueryMaxOrderVolumeField := (*define.CThostFtdcQueryMaxOrderVolumeField)(unsafe.Pointer(pQueryMaxOrderVolume))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pQueryMaxOrderVolumeField, pRspInfoField)
	return 0
}

//export tOnRspSettlementInfoConfirm
func tOnRspSettlementInfoConfirm(pSettlementInfoConfirm *C.struct_CThostFtdcSettlementInfoConfirmField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pSettlementInfoConfirmField := (*define.CThostFtdcSettlementInfoConfirmField)(unsafe.Pointer(pSettlementInfoConfirm))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pSettlementInfoConfirmField, pRspInfoField)
	return 0
}

//export tOnRspRemoveParkedOrder
func tOnRspRemoveParkedOrder(pRemoveParkedOrder *C.struct_CThostFtdcRemoveParkedOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pRemoveParkedOrderField := (*define.CThostFtdcRemoveParkedOrderField)(unsafe.Pointer(pRemoveParkedOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pRemoveParkedOrderField, pRspInfoField)
	return 0
}

//export tOnRspRemoveParkedOrderAction
func tOnRspRemoveParkedOrderAction(pRemoveParkedOrderAction *C.struct_CThostFtdcRemoveParkedOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pRemoveParkedOrderActionField := (*define.CThostFtdcRemoveParkedOrderActionField)(unsafe.Pointer(pRemoveParkedOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pRemoveParkedOrderActionField, pRspInfoField)
	return 0
}

//export tOnRspExecOrderInsert
func tOnRspExecOrderInsert(pInputExecOrder *C.struct_CThostFtdcInputExecOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputExecOrderField := (*define.CThostFtdcInputExecOrderField)(unsafe.Pointer(pInputExecOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputExecOrderField, pRspInfoField)
	return 0
}

//export tOnRspExecOrderAction
func tOnRspExecOrderAction(pInputExecOrderAction *C.struct_CThostFtdcInputExecOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputExecOrderActionField := (*define.CThostFtdcInputExecOrderActionField)(unsafe.Pointer(pInputExecOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputExecOrderActionField, pRspInfoField)
	return 0
}

//export tOnRspForQuoteInsert
func tOnRspForQuoteInsert(pInputForQuote *C.struct_CThostFtdcInputForQuoteField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputForQuoteField := (*define.CThostFtdcInputForQuoteField)(unsafe.Pointer(pInputForQuote))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputForQuoteField, pRspInfoField)
	return 0
}

//export tOnRspQuoteInsert
func tOnRspQuoteInsert(pInputQuote *C.struct_CThostFtdcInputQuoteField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputQuoteField := (*define.CThostFtdcInputQuoteField)(unsafe.Pointer(pInputQuote))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputQuoteField, pRspInfoField)
	return 0
}

//export tOnRspQuoteAction
func tOnRspQuoteAction(pInputQuoteAction *C.struct_CThostFtdcInputQuoteActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputQuoteActionField := (*define.CThostFtdcInputQuoteActionField)(unsafe.Pointer(pInputQuoteAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputQuoteActionField, pRspInfoField)
	return 0
}

//export tOnRspLockInsert
func tOnRspLockInsert(pInputLock *C.struct_CThostFtdcInputLockField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputLockField := (*define.CThostFtdcInputLockField)(unsafe.Pointer(pInputLock))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputLockField, pRspInfoField)
	return 0
}

//export tOnRspBatchOrderAction
func tOnRspBatchOrderAction(pInputBatchOrderAction *C.struct_CThostFtdcInputBatchOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputBatchOrderActionField := (*define.CThostFtdcInputBatchOrderActionField)(unsafe.Pointer(pInputBatchOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputBatchOrderActionField, pRspInfoField)
	return 0
}

//export tOnRspCombActionInsert
func tOnRspCombActionInsert(pInputCombAction *C.struct_CThostFtdcInputCombActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputCombActionField := (*define.CThostFtdcInputCombActionField)(unsafe.Pointer(pInputCombAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputCombActionField, pRspInfoField)
	return 0
}

//export tOnRspQryOrder
func tOnRspQryOrder(pOrder *C.struct_CThostFtdcOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pOrderField := (*define.CThostFtdcOrderField)(unsafe.Pointer(pOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pOrderField, pRspInfoField)
	return 0
}

//export tOnRspQryTrade
func tOnRspQryTrade(pTrade *C.struct_CThostFtdcTradeField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pTradeField := (*define.CThostFtdcTradeField)(unsafe.Pointer(pTrade))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pTradeField, pRspInfoField)
	return 0
}

//export tOnRspQryInvestorPosition
func tOnRspQryInvestorPosition(pInvestorPosition *C.struct_CThostFtdcInvestorPositionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInvestorPositionField := (*define.CThostFtdcInvestorPositionField)(unsafe.Pointer(pInvestorPosition))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInvestorPositionField, pRspInfoField)
	return 0
}

//export tOnRspQryTradingAccount
func tOnRspQryTradingAccount(pTradingAccount *C.struct_CThostFtdcTradingAccountField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pTradingAccountField := (*define.CThostFtdcTradingAccountField)(unsafe.Pointer(pTradingAccount))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pTradingAccountField, pRspInfoField)
	return 0
}

//export tOnRspQryInvestor
func tOnRspQryInvestor(pInvestor *C.struct_CThostFtdcInvestorField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInvestorField := (*define.CThostFtdcInvestorField)(unsafe.Pointer(pInvestor))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInvestorField, pRspInfoField)
	return 0
}

//export tOnRspQryTradingCode
func tOnRspQryTradingCode(pTradingCode *C.struct_CThostFtdcTradingCodeField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pTradingCodeField := (*define.CThostFtdcTradingCodeField)(unsafe.Pointer(pTradingCode))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pTradingCodeField, pRspInfoField)
	return 0
}

//export tOnRspQryInstrumentMarginRate
func tOnRspQryInstrumentMarginRate(pInstrumentMarginRate *C.struct_CThostFtdcInstrumentMarginRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInstrumentMarginRateField := (*define.CThostFtdcInstrumentMarginRateField)(unsafe.Pointer(pInstrumentMarginRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInstrumentMarginRateField, pRspInfoField)
	return 0
}

//export tOnRspQryInstrumentCommissionRate
func tOnRspQryInstrumentCommissionRate(pInstrumentCommissionRate *C.struct_CThostFtdcInstrumentCommissionRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInstrumentCommissionRateField := (*define.CThostFtdcInstrumentCommissionRateField)(unsafe.Pointer(pInstrumentCommissionRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInstrumentCommissionRateField, pRspInfoField)
	return 0
}

//export tOnRspQryExchange
func tOnRspQryExchange(pExchange *C.struct_CThostFtdcExchangeField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pExchangeField := (*define.CThostFtdcExchangeField)(unsafe.Pointer(pExchange))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pExchangeField, pRspInfoField)
	return 0
}

//export tOnRspQryProduct
func tOnRspQryProduct(pProduct *C.struct_CThostFtdcProductField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pProductField := (*define.CThostFtdcProductField)(unsafe.Pointer(pProduct))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pProductField, pRspInfoField)
	return 0
}

//export tOnRspQryInstrument
func tOnRspQryInstrument(pInstrument *C.struct_CThostFtdcInstrumentField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInstrumentField := (*define.CThostFtdcInstrumentField)(unsafe.Pointer(pInstrument))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInstrumentField, pRspInfoField)
	return 0
}

//export tOnRspQryDepthMarketData
func tOnRspQryDepthMarketData(pDepthMarketData *C.struct_CThostFtdcDepthMarketDataField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pDepthMarketDataField := (*define.CThostFtdcDepthMarketDataField)(unsafe.Pointer(pDepthMarketData))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pDepthMarketDataField, pRspInfoField)
	return 0
}

//export tOnRspQrySettlementInfo
func tOnRspQrySettlementInfo(pSettlementInfo *C.struct_CThostFtdcSettlementInfoField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pSettlementInfoField := (*define.CThostFtdcSettlementInfoField)(unsafe.Pointer(pSettlementInfo))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pSettlementInfoField, pRspInfoField)
	return 0
}

//export tOnRspQryTransferBank
func tOnRspQryTransferBank(pTransferBank *C.struct_CThostFtdcTransferBankField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pTransferBankField := (*define.CThostFtdcTransferBankField)(unsafe.Pointer(pTransferBank))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pTransferBankField, pRspInfoField)
	return 0
}

//export tOnRspQryInvestorPositionDetail
func tOnRspQryInvestorPositionDetail(pInvestorPositionDetail *C.struct_CThostFtdcInvestorPositionDetailField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInvestorPositionDetailField := (*define.CThostFtdcInvestorPositionDetailField)(unsafe.Pointer(pInvestorPositionDetail))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInvestorPositionDetailField, pRspInfoField)
	return 0
}

//export tOnRspQryNotice
func tOnRspQryNotice(pNotice *C.struct_CThostFtdcNoticeField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pNoticeField := (*define.CThostFtdcNoticeField)(unsafe.Pointer(pNotice))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pNoticeField, pRspInfoField)
	return 0
}

//export tOnRspQrySettlementInfoConfirm
func tOnRspQrySettlementInfoConfirm(pSettlementInfoConfirm *C.struct_CThostFtdcSettlementInfoConfirmField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pSettlementInfoConfirmField := (*define.CThostFtdcSettlementInfoConfirmField)(unsafe.Pointer(pSettlementInfoConfirm))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pSettlementInfoConfirmField, pRspInfoField)
	return 0
}

//export tOnRspQryInvestorPositionCombineDetail
func tOnRspQryInvestorPositionCombineDetail(pInvestorPositionCombineDetail *C.struct_CThostFtdcInvestorPositionCombineDetailField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInvestorPositionCombineDetailField := (*define.CThostFtdcInvestorPositionCombineDetailField)(unsafe.Pointer(pInvestorPositionCombineDetail))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInvestorPositionCombineDetailField, pRspInfoField)
	return 0
}

//export tOnRspQryCFMMCTradingAccountKey
func tOnRspQryCFMMCTradingAccountKey(pCFMMCTradingAccountKey *C.struct_CThostFtdcCFMMCTradingAccountKeyField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pCFMMCTradingAccountKeyField := (*define.CThostFtdcCFMMCTradingAccountKeyField)(unsafe.Pointer(pCFMMCTradingAccountKey))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pCFMMCTradingAccountKeyField, pRspInfoField)
	return 0
}

//export tOnRspQryEWarrantOffset
func tOnRspQryEWarrantOffset(pEWarrantOffset *C.struct_CThostFtdcEWarrantOffsetField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pEWarrantOffsetField := (*define.CThostFtdcEWarrantOffsetField)(unsafe.Pointer(pEWarrantOffset))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pEWarrantOffsetField, pRspInfoField)
	return 0
}

//export tOnRspQryInvestorProductGroupMargin
func tOnRspQryInvestorProductGroupMargin(pInvestorProductGroupMargin *C.struct_CThostFtdcInvestorProductGroupMarginField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInvestorProductGroupMarginField := (*define.CThostFtdcInvestorProductGroupMarginField)(unsafe.Pointer(pInvestorProductGroupMargin))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInvestorProductGroupMarginField, pRspInfoField)
	return 0
}

//export tOnRspQryExchangeMarginRate
func tOnRspQryExchangeMarginRate(pExchangeMarginRate *C.struct_CThostFtdcExchangeMarginRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pExchangeMarginRateField := (*define.CThostFtdcExchangeMarginRateField)(unsafe.Pointer(pExchangeMarginRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pExchangeMarginRateField, pRspInfoField)
	return 0
}

//export tOnRspQryExchangeMarginRateAdjust
func tOnRspQryExchangeMarginRateAdjust(pExchangeMarginRateAdjust *C.struct_CThostFtdcExchangeMarginRateAdjustField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pExchangeMarginRateAdjustField := (*define.CThostFtdcExchangeMarginRateAdjustField)(unsafe.Pointer(pExchangeMarginRateAdjust))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pExchangeMarginRateAdjustField, pRspInfoField)
	return 0
}

//export tOnRspQryExchangeRate
func tOnRspQryExchangeRate(pExchangeRate *C.struct_CThostFtdcExchangeRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pExchangeRateField := (*define.CThostFtdcExchangeRateField)(unsafe.Pointer(pExchangeRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pExchangeRateField, pRspInfoField)
	return 0
}

//export tOnRspQrySecAgentACIDMap
func tOnRspQrySecAgentACIDMap(pSecAgentACIDMap *C.struct_CThostFtdcSecAgentACIDMapField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pSecAgentACIDMapField := (*define.CThostFtdcSecAgentACIDMapField)(unsafe.Pointer(pSecAgentACIDMap))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pSecAgentACIDMapField, pRspInfoField)
	return 0
}

//export tOnRspQryProductExchRate
func tOnRspQryProductExchRate(pProductExchRate *C.struct_CThostFtdcProductExchRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pProductExchRateField := (*define.CThostFtdcProductExchRateField)(unsafe.Pointer(pProductExchRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pProductExchRateField, pRspInfoField)
	return 0
}

//export tOnRspQryProductGroup
func tOnRspQryProductGroup(pProductGroup *C.struct_CThostFtdcProductGroupField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pProductGroupField := (*define.CThostFtdcProductGroupField)(unsafe.Pointer(pProductGroup))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pProductGroupField, pRspInfoField)
	return 0
}

//export tOnRspQryMMInstrumentCommissionRate
func tOnRspQryMMInstrumentCommissionRate(pMMInstrumentCommissionRate *C.struct_CThostFtdcMMInstrumentCommissionRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pMMInstrumentCommissionRateField := (*define.CThostFtdcMMInstrumentCommissionRateField)(unsafe.Pointer(pMMInstrumentCommissionRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pMMInstrumentCommissionRateField, pRspInfoField)
	return 0
}

//export tOnRspQryMMOptionInstrCommRate
func tOnRspQryMMOptionInstrCommRate(pMMOptionInstrCommRate *C.struct_CThostFtdcMMOptionInstrCommRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pMMOptionInstrCommRateField := (*define.CThostFtdcMMOptionInstrCommRateField)(unsafe.Pointer(pMMOptionInstrCommRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pMMOptionInstrCommRateField, pRspInfoField)
	return 0
}

//export tOnRspQryInstrumentOrderCommRate
func tOnRspQryInstrumentOrderCommRate(pInstrumentOrderCommRate *C.struct_CThostFtdcInstrumentOrderCommRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInstrumentOrderCommRateField := (*define.CThostFtdcInstrumentOrderCommRateField)(unsafe.Pointer(pInstrumentOrderCommRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInstrumentOrderCommRateField, pRspInfoField)
	return 0
}

//export tOnRspQryOptionInstrTradeCost
func tOnRspQryOptionInstrTradeCost(pOptionInstrTradeCost *C.struct_CThostFtdcOptionInstrTradeCostField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pOptionInstrTradeCostField := (*define.CThostFtdcOptionInstrTradeCostField)(unsafe.Pointer(pOptionInstrTradeCost))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pOptionInstrTradeCostField, pRspInfoField)
	return 0
}

//export tOnRspQryOptionInstrCommRate
func tOnRspQryOptionInstrCommRate(pOptionInstrCommRate *C.struct_CThostFtdcOptionInstrCommRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pOptionInstrCommRateField := (*define.CThostFtdcOptionInstrCommRateField)(unsafe.Pointer(pOptionInstrCommRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pOptionInstrCommRateField, pRspInfoField)
	return 0
}

//export tOnRspQryExecOrder
func tOnRspQryExecOrder(pExecOrder *C.struct_CThostFtdcExecOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pExecOrderField := (*define.CThostFtdcExecOrderField)(unsafe.Pointer(pExecOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pExecOrderField, pRspInfoField)
	return 0
}

//export tOnRspQryForQuote
func tOnRspQryForQuote(pForQuote *C.struct_CThostFtdcForQuoteField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pForQuoteField := (*define.CThostFtdcForQuoteField)(unsafe.Pointer(pForQuote))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pForQuoteField, pRspInfoField)
	return 0
}

//export tOnRspQryQuote
func tOnRspQryQuote(pQuote *C.struct_CThostFtdcQuoteField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pQuoteField := (*define.CThostFtdcQuoteField)(unsafe.Pointer(pQuote))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pQuoteField, pRspInfoField)
	return 0
}

//export tOnRspQryLock
func tOnRspQryLock(pLock *C.struct_CThostFtdcLockField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pLockField := (*define.CThostFtdcLockField)(unsafe.Pointer(pLock))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pLockField, pRspInfoField)
	return 0
}

//export tOnRspQryLockPosition
func tOnRspQryLockPosition(pLockPosition *C.struct_CThostFtdcLockPositionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pLockPositionField := (*define.CThostFtdcLockPositionField)(unsafe.Pointer(pLockPosition))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pLockPositionField, pRspInfoField)
	return 0
}

//export tOnRspQryETFOptionInstrCommRate
func tOnRspQryETFOptionInstrCommRate(pETFOptionInstrCommRate *C.struct_CThostFtdcETFOptionInstrCommRateField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pETFOptionInstrCommRateField := (*define.CThostFtdcETFOptionInstrCommRateField)(unsafe.Pointer(pETFOptionInstrCommRate))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pETFOptionInstrCommRateField, pRspInfoField)
	return 0
}

//export tOnRspQryLimitPosi
func tOnRspQryLimitPosi(pLimitPosi *C.struct_CThostFtdcLimitPosiField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pLimitPosiField := (*define.CThostFtdcLimitPosiField)(unsafe.Pointer(pLimitPosi))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pLimitPosiField, pRspInfoField)
	return 0
}

//export tOnRspQryInvestorLevel
func tOnRspQryInvestorLevel(pInvestorLevel *C.struct_CThostFtdcInvestorLevelField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInvestorLevelField := (*define.CThostFtdcInvestorLevelField)(unsafe.Pointer(pInvestorLevel))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInvestorLevelField, pRspInfoField)
	return 0
}

//export tOnRspQryExecFreeze
func tOnRspQryExecFreeze(pExecFreeze *C.struct_CThostFtdcExecFreezeField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pExecFreezeField := (*define.CThostFtdcExecFreezeField)(unsafe.Pointer(pExecFreeze))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pExecFreezeField, pRspInfoField)
	return 0
}

//export tOnRspQryLimitAmount
func tOnRspQryLimitAmount(pLimitAmount *C.struct_CThostFtdcLimitAmountField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pLimitAmountField := (*define.CThostFtdcLimitAmountField)(unsafe.Pointer(pLimitAmount))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pLimitAmountField, pRspInfoField)
	return 0
}

//export tOnRspQryCombInstrumentGuard
func tOnRspQryCombInstrumentGuard(pCombInstrumentGuard *C.struct_CThostFtdcCombInstrumentGuardField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pCombInstrumentGuardField := (*define.CThostFtdcCombInstrumentGuardField)(unsafe.Pointer(pCombInstrumentGuard))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pCombInstrumentGuardField, pRspInfoField)
	return 0
}

//export tOnRspQryCombAction
func tOnRspQryCombAction(pCombAction *C.struct_CThostFtdcCombActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pCombActionField := (*define.CThostFtdcCombActionField)(unsafe.Pointer(pCombAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pCombActionField, pRspInfoField)
	return 0
}

//export tOnRspQryTransferSerial
func tOnRspQryTransferSerial(pTransferSerial *C.struct_CThostFtdcTransferSerialField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pTransferSerialField := (*define.CThostFtdcTransferSerialField)(unsafe.Pointer(pTransferSerial))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pTransferSerialField, pRspInfoField)
	return 0
}

//export tOnRspQryAccountregister
func tOnRspQryAccountregister(pAccountregister *C.struct_CThostFtdcAccountregisterField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pAccountregisterField := (*define.CThostFtdcAccountregisterField)(unsafe.Pointer(pAccountregister))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pAccountregisterField, pRspInfoField)
	return 0
}

//export tOnRspError
func tOnRspError(pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pRspInfoField)
	return 0
}

//export tOnRtnOrder
func tOnRtnOrder(pOrder *C.struct_CThostFtdcOrderField) C.int {
	pOrderField := (*define.CThostFtdcOrderField)(unsafe.Pointer(pOrder))
	fmt.Print(pOrderField)
	return 0
}

//export tOnRtnTrade
func tOnRtnTrade(pTrade *C.struct_CThostFtdcTradeField) C.int {
	pTradeField := (*define.CThostFtdcTradeField)(unsafe.Pointer(pTrade))
	fmt.Print(pTradeField)
	return 0
}

//export tOnErrRtnOrderInsert
func tOnErrRtnOrderInsert(pInputOrder *C.struct_CThostFtdcInputOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pInputOrderField := (*define.CThostFtdcInputOrderField)(unsafe.Pointer(pInputOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputOrderField, pRspInfoField)
	return 0
}

//export tOnErrRtnOrderAction
func tOnErrRtnOrderAction(pOrderAction *C.struct_CThostFtdcOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pOrderActionField := (*define.CThostFtdcOrderActionField)(unsafe.Pointer(pOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pOrderActionField, pRspInfoField)
	return 0
}

//export tOnRtnInstrumentStatus
func tOnRtnInstrumentStatus(pInstrumentStatus *C.struct_CThostFtdcInstrumentStatusField) C.int {
	pInstrumentStatusField := (*define.CThostFtdcInstrumentStatusField)(unsafe.Pointer(pInstrumentStatus))
	fmt.Print(pInstrumentStatusField)
	return 0
}

//export tOnRtnBulletin
func tOnRtnBulletin(pBulletin *C.struct_CThostFtdcBulletinField) C.int {
	pBulletinField := (*define.CThostFtdcBulletinField)(unsafe.Pointer(pBulletin))
	fmt.Print(pBulletinField)
	return 0
}

//export tOnRtnTradingNotice
func tOnRtnTradingNotice(pTradingNoticeInfo *C.struct_CThostFtdcTradingNoticeInfoField) C.int {
	pTradingNoticeInfoField := (*define.CThostFtdcTradingNoticeInfoField)(unsafe.Pointer(pTradingNoticeInfo))
	fmt.Print(pTradingNoticeInfoField)
	return 0
}

//export tOnRtnErrorConditionalOrder
func tOnRtnErrorConditionalOrder(pErrorConditionalOrder *C.struct_CThostFtdcErrorConditionalOrderField) C.int {
	pErrorConditionalOrderField := (*define.CThostFtdcErrorConditionalOrderField)(unsafe.Pointer(pErrorConditionalOrder))
	fmt.Print(pErrorConditionalOrderField)
	return 0
}

//export tOnRtnExecOrder
func tOnRtnExecOrder(pExecOrder *C.struct_CThostFtdcExecOrderField) C.int {
	pExecOrderField := (*define.CThostFtdcExecOrderField)(unsafe.Pointer(pExecOrder))
	fmt.Print(pExecOrderField)
	return 0
}

//export tOnErrRtnExecOrderInsert
func tOnErrRtnExecOrderInsert(pInputExecOrder *C.struct_CThostFtdcInputExecOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pInputExecOrderField := (*define.CThostFtdcInputExecOrderField)(unsafe.Pointer(pInputExecOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputExecOrderField, pRspInfoField)
	return 0
}

//export tOnErrRtnExecOrderAction
func tOnErrRtnExecOrderAction(pExecOrderAction *C.struct_CThostFtdcExecOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pExecOrderActionField := (*define.CThostFtdcExecOrderActionField)(unsafe.Pointer(pExecOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pExecOrderActionField, pRspInfoField)
	return 0
}

//export tOnErrRtnForQuoteInsert
func tOnErrRtnForQuoteInsert(pInputForQuote *C.struct_CThostFtdcInputForQuoteField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pInputForQuoteField := (*define.CThostFtdcInputForQuoteField)(unsafe.Pointer(pInputForQuote))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputForQuoteField, pRspInfoField)
	return 0
}

//export tOnRtnQuote
func tOnRtnQuote(pQuote *C.struct_CThostFtdcQuoteField) C.int {
	pQuoteField := (*define.CThostFtdcQuoteField)(unsafe.Pointer(pQuote))
	fmt.Print(pQuoteField)
	return 0
}

//export tOnErrRtnQuoteInsert
func tOnErrRtnQuoteInsert(pInputQuote *C.struct_CThostFtdcInputQuoteField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pInputQuoteField := (*define.CThostFtdcInputQuoteField)(unsafe.Pointer(pInputQuote))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputQuoteField, pRspInfoField)
	return 0
}

//export tOnErrRtnQuoteAction
func tOnErrRtnQuoteAction(pQuoteAction *C.struct_CThostFtdcQuoteActionField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pQuoteActionField := (*define.CThostFtdcQuoteActionField)(unsafe.Pointer(pQuoteAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pQuoteActionField, pRspInfoField)
	return 0
}

//export tOnRtnForQuoteRsp
func tOnRtnForQuoteRsp(pForQuoteRsp *C.struct_CThostFtdcForQuoteRspField) C.int {
	pForQuoteRspField := (*define.CThostFtdcForQuoteRspField)(unsafe.Pointer(pForQuoteRsp))
	fmt.Print(pForQuoteRspField)
	return 0
}

//export tOnRtnCFMMCTradingAccountToken
func tOnRtnCFMMCTradingAccountToken(pCFMMCTradingAccountToken *C.struct_CThostFtdcCFMMCTradingAccountTokenField) C.int {
	pCFMMCTradingAccountTokenField := (*define.CThostFtdcCFMMCTradingAccountTokenField)(unsafe.Pointer(pCFMMCTradingAccountToken))
	fmt.Print(pCFMMCTradingAccountTokenField)
	return 0
}

//export tOnRtnLock
func tOnRtnLock(pLock *C.struct_CThostFtdcLockField) C.int {
	pLockField := (*define.CThostFtdcLockField)(unsafe.Pointer(pLock))
	fmt.Print(pLockField)
	return 0
}

//export tOnErrRtnLockInsert
func tOnErrRtnLockInsert(pInputLock *C.struct_CThostFtdcInputLockField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pInputLockField := (*define.CThostFtdcInputLockField)(unsafe.Pointer(pInputLock))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputLockField, pRspInfoField)
	return 0
}

//export tOnErrRtnBatchOrderAction
func tOnErrRtnBatchOrderAction(pBatchOrderAction *C.struct_CThostFtdcBatchOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pBatchOrderActionField := (*define.CThostFtdcBatchOrderActionField)(unsafe.Pointer(pBatchOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pBatchOrderActionField, pRspInfoField)
	return 0
}

//export tOnRtnCombAction
func tOnRtnCombAction(pCombAction *C.struct_CThostFtdcCombActionField) C.int {
	pCombActionField := (*define.CThostFtdcCombActionField)(unsafe.Pointer(pCombAction))
	fmt.Print(pCombActionField)
	return 0
}

//export tOnErrRtnCombActionInsert
func tOnErrRtnCombActionInsert(pInputCombAction *C.struct_CThostFtdcInputCombActionField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pInputCombActionField := (*define.CThostFtdcInputCombActionField)(unsafe.Pointer(pInputCombAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputCombActionField, pRspInfoField)
	return 0
}

//export tOnRspQryContractBank
func tOnRspQryContractBank(pContractBank *C.struct_CThostFtdcContractBankField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pContractBankField := (*define.CThostFtdcContractBankField)(unsafe.Pointer(pContractBank))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pContractBankField, pRspInfoField)
	return 0
}

//export tOnRspQryParkedOrder
func tOnRspQryParkedOrder(pParkedOrder *C.struct_CThostFtdcParkedOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pParkedOrderField := (*define.CThostFtdcParkedOrderField)(unsafe.Pointer(pParkedOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pParkedOrderField, pRspInfoField)
	return 0
}

//export tOnRspQryParkedOrderAction
func tOnRspQryParkedOrderAction(pParkedOrderAction *C.struct_CThostFtdcParkedOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pParkedOrderActionField := (*define.CThostFtdcParkedOrderActionField)(unsafe.Pointer(pParkedOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pParkedOrderActionField, pRspInfoField)
	return 0
}

//export tOnRspQryTradingNotice
func tOnRspQryTradingNotice(pTradingNotice *C.struct_CThostFtdcTradingNoticeField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pTradingNoticeField := (*define.CThostFtdcTradingNoticeField)(unsafe.Pointer(pTradingNotice))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pTradingNoticeField, pRspInfoField)
	return 0
}

//export tOnRspQryBrokerTradingParams
func tOnRspQryBrokerTradingParams(pBrokerTradingParams *C.struct_CThostFtdcBrokerTradingParamsField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pBrokerTradingParamsField := (*define.CThostFtdcBrokerTradingParamsField)(unsafe.Pointer(pBrokerTradingParams))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pBrokerTradingParamsField, pRspInfoField)
	return 0
}

//export tOnRspQryBrokerTradingAlgos
func tOnRspQryBrokerTradingAlgos(pBrokerTradingAlgos *C.struct_CThostFtdcBrokerTradingAlgosField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pBrokerTradingAlgosField := (*define.CThostFtdcBrokerTradingAlgosField)(unsafe.Pointer(pBrokerTradingAlgos))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pBrokerTradingAlgosField, pRspInfoField)
	return 0
}

//export tOnRspQueryCFMMCTradingAccountToken
func tOnRspQueryCFMMCTradingAccountToken(pQueryCFMMCTradingAccountToken *C.struct_CThostFtdcQueryCFMMCTradingAccountTokenField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pQueryCFMMCTradingAccountTokenField := (*define.CThostFtdcQueryCFMMCTradingAccountTokenField)(unsafe.Pointer(pQueryCFMMCTradingAccountToken))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pQueryCFMMCTradingAccountTokenField, pRspInfoField)
	return 0
}

//export tOnRtnFromBankToFutureByBank
func tOnRtnFromBankToFutureByBank(pRspTransfer *C.struct_CThostFtdcRspTransferField) C.int {
	pRspTransferField := (*define.CThostFtdcRspTransferField)(unsafe.Pointer(pRspTransfer))
	fmt.Print(pRspTransferField)
	return 0
}

//export tOnRtnFromFutureToBankByBank
func tOnRtnFromFutureToBankByBank(pRspTransfer *C.struct_CThostFtdcRspTransferField) C.int {
	pRspTransferField := (*define.CThostFtdcRspTransferField)(unsafe.Pointer(pRspTransfer))
	fmt.Print(pRspTransferField)
	return 0
}

//export tOnRtnRepealFromBankToFutureByBank
func tOnRtnRepealFromBankToFutureByBank(pRspRepeal *C.struct_CThostFtdcRspRepealField) C.int {
	pRspRepealField := (*define.CThostFtdcRspRepealField)(unsafe.Pointer(pRspRepeal))
	fmt.Print(pRspRepealField)
	return 0
}

//export tOnRtnRepealFromFutureToBankByBank
func tOnRtnRepealFromFutureToBankByBank(pRspRepeal *C.struct_CThostFtdcRspRepealField) C.int {
	pRspRepealField := (*define.CThostFtdcRspRepealField)(unsafe.Pointer(pRspRepeal))
	fmt.Print(pRspRepealField)
	return 0
}

//export tOnRtnFromBankToFutureByFuture
func tOnRtnFromBankToFutureByFuture(pRspTransfer *C.struct_CThostFtdcRspTransferField) C.int {
	pRspTransferField := (*define.CThostFtdcRspTransferField)(unsafe.Pointer(pRspTransfer))
	fmt.Print(pRspTransferField)
	return 0
}

//export tOnRtnFromFutureToBankByFuture
func tOnRtnFromFutureToBankByFuture(pRspTransfer *C.struct_CThostFtdcRspTransferField) C.int {
	pRspTransferField := (*define.CThostFtdcRspTransferField)(unsafe.Pointer(pRspTransfer))
	fmt.Print(pRspTransferField)
	return 0
}

//export tOnRtnRepealFromBankToFutureByFutureManual
func tOnRtnRepealFromBankToFutureByFutureManual(pRspRepeal *C.struct_CThostFtdcRspRepealField) C.int {
	pRspRepealField := (*define.CThostFtdcRspRepealField)(unsafe.Pointer(pRspRepeal))
	fmt.Print(pRspRepealField)
	return 0
}

//export tOnRtnRepealFromFutureToBankByFutureManual
func tOnRtnRepealFromFutureToBankByFutureManual(pRspRepeal *C.struct_CThostFtdcRspRepealField) C.int {
	pRspRepealField := (*define.CThostFtdcRspRepealField)(unsafe.Pointer(pRspRepeal))
	fmt.Print(pRspRepealField)
	return 0
}

//export tOnRtnQueryBankBalanceByFuture
func tOnRtnQueryBankBalanceByFuture(pNotifyQueryAccount *C.struct_CThostFtdcNotifyQueryAccountField) C.int {
	pNotifyQueryAccountField := (*define.CThostFtdcNotifyQueryAccountField)(unsafe.Pointer(pNotifyQueryAccount))
	fmt.Print(pNotifyQueryAccountField)
	return 0
}

//export tOnErrRtnBankToFutureByFuture
func tOnErrRtnBankToFutureByFuture(pReqTransfer *C.struct_CThostFtdcReqTransferField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pReqTransferField := (*define.CThostFtdcReqTransferField)(unsafe.Pointer(pReqTransfer))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqTransferField, pRspInfoField)
	return 0
}

//export tOnErrRtnFutureToBankByFuture
func tOnErrRtnFutureToBankByFuture(pReqTransfer *C.struct_CThostFtdcReqTransferField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pReqTransferField := (*define.CThostFtdcReqTransferField)(unsafe.Pointer(pReqTransfer))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqTransferField, pRspInfoField)
	return 0
}

//export tOnErrRtnRepealBankToFutureByFutureManual
func tOnErrRtnRepealBankToFutureByFutureManual(pReqRepeal *C.struct_CThostFtdcReqRepealField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pReqRepealField := (*define.CThostFtdcReqRepealField)(unsafe.Pointer(pReqRepeal))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqRepealField, pRspInfoField)
	return 0
}

//export tOnErrRtnRepealFutureToBankByFutureManual
func tOnErrRtnRepealFutureToBankByFutureManual(pReqRepeal *C.struct_CThostFtdcReqRepealField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pReqRepealField := (*define.CThostFtdcReqRepealField)(unsafe.Pointer(pReqRepeal))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqRepealField, pRspInfoField)
	return 0
}

//export tOnErrRtnQueryBankBalanceByFuture
func tOnErrRtnQueryBankBalanceByFuture(pReqQueryAccount *C.struct_CThostFtdcReqQueryAccountField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pReqQueryAccountField := (*define.CThostFtdcReqQueryAccountField)(unsafe.Pointer(pReqQueryAccount))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqQueryAccountField, pRspInfoField)
	return 0
}

//export tOnRtnRepealFromBankToFutureByFuture
func tOnRtnRepealFromBankToFutureByFuture(pRspRepeal *C.struct_CThostFtdcRspRepealField) C.int {
	pRspRepealField := (*define.CThostFtdcRspRepealField)(unsafe.Pointer(pRspRepeal))
	fmt.Print(pRspRepealField)
	return 0
}

//export tOnRtnRepealFromFutureToBankByFuture
func tOnRtnRepealFromFutureToBankByFuture(pRspRepeal *C.struct_CThostFtdcRspRepealField) C.int {
	pRspRepealField := (*define.CThostFtdcRspRepealField)(unsafe.Pointer(pRspRepeal))
	fmt.Print(pRspRepealField)
	return 0
}

//export tOnRspFromBankToFutureByFuture
func tOnRspFromBankToFutureByFuture(pReqTransfer *C.struct_CThostFtdcReqTransferField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pReqTransferField := (*define.CThostFtdcReqTransferField)(unsafe.Pointer(pReqTransfer))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqTransferField, pRspInfoField)
	return 0
}

//export tOnRspFromFutureToBankByFuture
func tOnRspFromFutureToBankByFuture(pReqTransfer *C.struct_CThostFtdcReqTransferField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pReqTransferField := (*define.CThostFtdcReqTransferField)(unsafe.Pointer(pReqTransfer))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqTransferField, pRspInfoField)
	return 0
}

//export tOnRspQueryBankAccountMoneyByFuture
func tOnRspQueryBankAccountMoneyByFuture(pReqQueryAccount *C.struct_CThostFtdcReqQueryAccountField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pReqQueryAccountField := (*define.CThostFtdcReqQueryAccountField)(unsafe.Pointer(pReqQueryAccount))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqQueryAccountField, pRspInfoField)
	return 0
}

//export tOnRtnOpenAccountByBank
func tOnRtnOpenAccountByBank(pOpenAccount *C.struct_CThostFtdcOpenAccountField) C.int {
	pOpenAccountField := (*define.CThostFtdcOpenAccountField)(unsafe.Pointer(pOpenAccount))
	fmt.Print(pOpenAccountField)
	return 0
}

//export tOnRtnCancelAccountByBank
func tOnRtnCancelAccountByBank(pCancelAccount *C.struct_CThostFtdcCancelAccountField) C.int {
	pCancelAccountField := (*define.CThostFtdcCancelAccountField)(unsafe.Pointer(pCancelAccount))
	fmt.Print(pCancelAccountField)
	return 0
}

//export tOnRtnChangeAccountByBank
func tOnRtnChangeAccountByBank(pChangeAccount *C.struct_CThostFtdcChangeAccountField) C.int {
	pChangeAccountField := (*define.CThostFtdcChangeAccountField)(unsafe.Pointer(pChangeAccount))
	fmt.Print(pChangeAccountField)
	return 0
}

//export tOnRtnResOpenAccConfirmTpdByBank
func tOnRtnResOpenAccConfirmTpdByBank(pResOpenAccConfirmTpd *C.struct_CThostFtdcResOpenAccConfirmTpdField) C.int {
	pResOpenAccConfirmTpdField := (*define.CThostFtdcResOpenAccConfirmTpdField)(unsafe.Pointer(pResOpenAccConfirmTpd))
	fmt.Print(pResOpenAccConfirmTpdField)
	return 0
}

//export tOnRspReserveOpenAccountTpdByFuture
func tOnRspReserveOpenAccountTpdByFuture(pReqReserveOpenAccountTpd *C.struct_CThostFtdcReqReserveOpenAccountTpdField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pReqReserveOpenAccountTpdField := (*define.CThostFtdcReqReserveOpenAccountTpdField)(unsafe.Pointer(pReqReserveOpenAccountTpd))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqReserveOpenAccountTpdField, pRspInfoField)
	return 0
}

//export tOnRspSecuritiesDepositInterestByFuture
func tOnRspSecuritiesDepositInterestByFuture(pReqSecuritiesDepositInterest *C.struct_CThostFtdcReqSecuritiesDepositInterestField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pReqSecuritiesDepositInterestField := (*define.CThostFtdcReqSecuritiesDepositInterestField)(unsafe.Pointer(pReqSecuritiesDepositInterest))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqSecuritiesDepositInterestField, pRspInfoField)
	return 0
}

//export tOnRspDayEndFileReadyByFuture
func tOnRspDayEndFileReadyByFuture(pReqDayEndFileReady *C.struct_CThostFtdcReqDayEndFileReadyField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pReqDayEndFileReadyField := (*define.CThostFtdcReqDayEndFileReadyField)(unsafe.Pointer(pReqDayEndFileReady))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pReqDayEndFileReadyField, pRspInfoField)
	return 0
}

//export tOnRspExecCombineOrderInsert
func tOnRspExecCombineOrderInsert(pInputExecCombineOrder *C.struct_CThostFtdcInputExecCombineOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputExecCombineOrderField := (*define.CThostFtdcInputExecCombineOrderField)(unsafe.Pointer(pInputExecCombineOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputExecCombineOrderField, pRspInfoField)
	return 0
}

//export tOnRspExecCombineOrderAction
func tOnRspExecCombineOrderAction(pInputExecCombineOrderAction *C.struct_CThostFtdcInputExecCombineOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputExecCombineOrderActionField := (*define.CThostFtdcInputExecCombineOrderActionField)(unsafe.Pointer(pInputExecCombineOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputExecCombineOrderActionField, pRspInfoField)
	return 0
}

//export tOnRspQryExecCombineOrder
func tOnRspQryExecCombineOrder(pExecCombineOrder *C.struct_CThostFtdcExecCombineOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pExecCombineOrderField := (*define.CThostFtdcExecCombineOrderField)(unsafe.Pointer(pExecCombineOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pExecCombineOrderField, pRspInfoField)
	return 0
}

//export tOnErrRtnExecCombineOrderAction
func tOnErrRtnExecCombineOrderAction(pExecCombineOrderAction *C.struct_CThostFtdcExecCombineOrderActionField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pExecCombineOrderActionField := (*define.CThostFtdcExecCombineOrderActionField)(unsafe.Pointer(pExecCombineOrderAction))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pExecCombineOrderActionField, pRspInfoField)
	return 0
}

//export tOnErrRtnExecCombineOrderInsert
func tOnErrRtnExecCombineOrderInsert(pInputExecCombineOrder *C.struct_CThostFtdcInputExecCombineOrderField, pRspInfo *C.struct_CThostFtdcRspInfoField) C.int {
	pInputExecCombineOrderField := (*define.CThostFtdcInputExecCombineOrderField)(unsafe.Pointer(pInputExecCombineOrder))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputExecCombineOrderField, pRspInfoField)
	return 0
}

//export tOnRtnExecCombineOrder
func tOnRtnExecCombineOrder(pExecCombineOrder *C.struct_CThostFtdcExecCombineOrderField) C.int {
	pExecCombineOrderField := (*define.CThostFtdcExecCombineOrderField)(unsafe.Pointer(pExecCombineOrder))
	fmt.Print(pExecCombineOrderField)
	return 0
}

//export tOnRspInternalTransfer
func tOnRspInternalTransfer(pInputInternalTransfer *C.struct_CThostFtdcInputInternalTransferField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInputInternalTransferField := (*define.CThostFtdcInputInternalTransferField)(unsafe.Pointer(pInputInternalTransfer))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInputInternalTransferField, pRspInfoField)
	return 0
}

//export tOnRtnInternalTransfer
func tOnRtnInternalTransfer(pRtnInternalTransfer *C.struct_CThostFtdcRtnInternalTransferField) C.int {
	pRtnInternalTransferField := (*define.CThostFtdcRtnInternalTransferField)(unsafe.Pointer(pRtnInternalTransfer))
	fmt.Print(pRtnInternalTransferField)
	return 0
}

//export tOnRspQryInternalTransfer
func tOnRspQryInternalTransfer(pInternalTransfer *C.struct_CThostFtdcInternalTransferField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pInternalTransferField := (*define.CThostFtdcInternalTransferField)(unsafe.Pointer(pInternalTransfer))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pInternalTransferField, pRspInfoField)
	return 0
}

//export tOnRspQryFutureTradingAccount
func tOnRspQryFutureTradingAccount(pNtfQryFutureTradingAccount *C.struct_CThostFtdcNtfQryFutureTradingAccountField, pRspInfo *C.struct_CThostFtdcRspInfoField, i C.int, b C._Bool) C.int {
	pNtfQryFutureTradingAccountField := (*define.CThostFtdcNtfQryFutureTradingAccountField)(unsafe.Pointer(pNtfQryFutureTradingAccount))
	pRspInfoField := (*define.CThostFtdcRspInfoField)(unsafe.Pointer(pRspInfo))
	fmt.Print(pNtfQryFutureTradingAccountField, pRspInfoField)
	return 0
}
